package com.zhu.pre.mapper;

import com.sanploy.common.domain.Cart;
import com.sanploy.common.domain.vo.CartVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * Created by zhu yingzhi on 2017/9/21.
 * @author yingzhi zhu
 * 购物车数据库操作类
 */
@Mapper
public interface CartMapper {
    /**
     * 插入购物车
     * @param cart 购物车实体
     * @return 数据库影响行数
     */
    int insertCart(Cart cart);

    /**
     * 查询购物车
     * @param userId 用户id
     * @return 购物车VO类 集合
     */
    List<CartVo> selectCart(@Param("user_id") Long userId);

    /**
     * 修改用户购物车的某个条目的数量
     * @param id 购物车id
     * @param number 修改的数量
     * @param user_id 用户id
     * @return 数据库影响行数
     */
    int updateCartNumber(@Param("id") Long id, @Param("number") int number, @Param("user_id") Long user_id);

    /**
     * 查找用户购物车的条目数量
     * @param userId 用户
     * @return 购物车的条目数量
     */
    @Select("SELECT count(*) FROM cart WHERE user_id=#{user_id}")
    int countCart(@Param("user_id") Long userId);

    /**
     * 删除购物车的某个条目
     * @param user_id 用户的id
     * @param cart_ids 购物车Id
     * @return 影响行数
     */
    int deleteCart(@Param("user_id") Long user_id, @Param("cart_ids") String[] cart_ids);
}
